import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"
import { resolve } from 'path';
import postcsspxtoviewport from "postcss-px-to-viewport";

export default defineConfig({
  base: "/",
  plugins: [
    vue(),
  ],
  resolve: {
    // 设置文件./src路径为 @
    alias: [
      {
        find: '@',
        replacement: resolve(__dirname, './src')
      }
    ]
  },
  css: {
    preprocessorOptions: {
      less: {
        modifyVars: {},
        javascriptEnabled: true
      }
    },
    // postcss: {
    //   plugins: [
    //     postcsspxtoviewport({
    //       unitToConvert: 'px', // 要转化的单位
    //       viewportWidth: 750, // UI设计稿的宽度
    //       unitPrecision: 6, // 转换后的精度，即小数点位数
    //       propList: ['*'], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
    //       viewportUnit: 'vw', // 指定需要转换成的视窗单位，默认vw
    //       fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位，默认vw
    //       selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名，
    //       minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
    //       mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
    //       replace: true, // 是否转换后直接更换属性值
    //       landscape: false, // 是否处理横屏情况
    //     })
    //   ]
    // }
  },
  server: {
    mimeTypes: {
      "text/javascript": ["js"]
    },
    // https: true,
    host: true,
    port: 80,
    open: true,
    proxy: {
      "/api": {
        target: 
        "http://8.137.109.35:9999"
        ,
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, "")
      }
    }
  },
  build: {
    target: "es2015",
    polyfillDynamicImport: true,
    chunkSizeWarningLimit: 1600,
    // rollupOptions: {
    //   output: {
    //     manualChunks(id) {
    //       if (/lodash/.test(id)) {
    //         return 'lodash';
    //       }
    //     },
    //   },
    // },
    // 启用 legacy 模式
    chunks: ["legacy", "main"],
    minify: "terser",
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true
      }
    }
  }
})
